package com.ruyiadmin.springboot.entity_data_model.entity_model.system_model;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;

import com.ruyiadmin.springboot.common_infrastructure.models.base_entity_model.RuYiAdminBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;

/**
 * <p>
 * 系统菜单模型
 * </p>
 *
 * @author RuYiAdmin
 * @since 2022-07-12
 */
@Data
@TableName("sys_menu")
@ApiModel(value = "SysMenu对象", description = "系统菜单表")
@NoArgsConstructor
@AllArgsConstructor
public class SysMenu extends RuYiAdminBaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("根路径")
    @TableField("PATH")
    @Length(max = 256)
    private String path;

    @ApiModelProperty("角色名称")
    @TableField("MENU_NAME")
    @NotNull
    @Length(max = 128)
    private String menuName;

    @ApiModelProperty("菜单路径")
    @TableField("MENU_URL")
    @Length(max = 256)
    private String menuUrl;

    @ApiModelProperty("父键")
    @TableField("PARENT_ID")
    private String parentId;

    @ApiModelProperty("序号")
    @TableField("SERIAL_NUMBER")
    private Integer serialNumber;

    @ApiModelProperty("菜单类型，0：菜单，1：按钮，视图：2")
    @TableField("MENU_TYPE")
    @NotNull
    private Integer menuType;

    @ApiModelProperty("图标")
    @TableField("ICON")
    @Length(max = 256)
    private String icon;

    @ApiModelProperty("编码")
    @TableField("CODE")
    @Length(max = 125)
    private String code;

    @ApiModelProperty("预留字段1")
    @TableField("EXTEND1")
    @Length(max = 36)
    private String extend1;

    @ApiModelProperty("预留字段2")
    @TableField("EXTEND2")
    @Length(max = 64)
    private String extend2;

    @ApiModelProperty("预留字段3")
    @TableField("EXTEND3")
    @Length(max = 128)
    private String extend3;

    @ApiModelProperty("预留字段4")
    @TableField("EXTEND4")
    @Length(max = 256)
    private String extend4;

    @ApiModelProperty("预留字段5")
    @TableField("EXTEND5")
    @Length(max = 512)
    private String extend5;

}
